﻿using AbpVnext_Order.DBContext;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity;

namespace AbpVnext_Order
{
    /// <summary>
    /// 所有的项目，抽象成AbpModule
    /// 方便使用和维护。
    ///  项目服务隔离 ，好处：独立维护
    /// </summary>
    public class OrderMoudule : AbpModule
    {
        /// <summary>
        /// 配置依赖注入
        /// </summary>
        /// <param name="context"></param>
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            //base.ConfigureServices(context);
            context.Services.AddAbpDbContext<OrderDbContext>();

            //配置AspNetCoreMvc模块
            Configure<AbpAspNetCoreMvcOptions>(option =>
            {
                //自动APi控制器
                //加载项目程序集  
                option.ConventionalControllers.Create(typeof(OrderMoudule).Assembly, option =>
                {
                    //修改自动api控制器的根路径(abp)  //配置改造
                    option.RootPath = "OrderTest";
                });

                //开启全局自动验证dto ，验证参数是否符合规范  默认配置为true
                //关闭之后，可以使用IValidationEnabled接口类局部开启
                //局部验证 -> 全局验证 -> 自动api验证或者手动api验证（默认）
                //option.AutoModelValidation = false;
            });

            //添加mapper映射
            Configure<AbpAutoMapperOptions>(option => option.AddMaps<OrderMoudule>());
        }
    }
}
